Test Results - sandbox_functional_converter_test

All Test Modules | GitHub Repository | Coverage Reports Designed for use with JUnit.

Summary

94.0%
Tests Failures Errors Skipped Success rate Time
351 0 0 21 94.02% 32.130
Note: failures are anticipated and checked for with assertions while errors are unanticipated.

Packages

Note: package statistics are not computed recursively, they only sum up all of its testsuites numbers.
Name Tests Errors Failures Skipped Time(s) Time Stamp Host
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000
(default package) 0 0 0 0 0.000

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top

Package (default package)

Name Tests Errors Failures Skipped Time(s) Time Stamp Host
Back to top


TestCase Additional Loop Pattern Edge Cases ๐Ÿ”—

Name Status Type Time(s)
Do-while loop should NOT convert (semantic incompatibility) ๐Ÿ”— Success 1.453
For-each loop adding to empty list followed by sort - CAUTION: mutability issue ๐Ÿ”— Success 0.944
Iterator with internal hasNext() check should NOT convert ๐Ÿ”— Success 0.242
Classic while-loop should NOT convert (no collection iteration) ๐Ÿ”— Success 0.132
Index-based for-loop to IntStream.range() ๐Ÿ”— Success 0.175
BUGGY BEHAVIOR: Multiple loops overwrite list instead of accumulating ๐Ÿ”— Skipped
FIXED: Bug has been fixed - multiple loops now use Stream.concat()
0.000
Do-while with guaranteed execution should NOT convert ๐Ÿ”— Success 0.111
Index-based collection loop to IntStream.range() ๐Ÿ”— Success 0.302
While-loop with method call condition should NOT convert ๐Ÿ”— Success 0.157
Multiple for-each loops populating same list should use Stream.concat() ๐Ÿ”— Success 0.333
Multiple iterators should NOT convert (no zip() in Java) ๐Ÿ”— Success 0.196
Properties ยป

Back to top

TestCase Additional Map+Filter Pattern Tests ๐Ÿ”—

Name Status Type Time(s)
Null-safe map: filter(item -> item != null).map() ๐Ÿ”— Success 0.072
Filter-map-collect: stream().filter().map().collect() ๐Ÿ”— Success 0.118
Combined filter: single filter with && condition ๐Ÿ”— Success 0.075
Map-filter-map: multi-step transformation ๐Ÿ”— Success 0.068
Filter-first: stream().filter().map().forEach() ๐Ÿ”— Success 0.124
Complex chain: multiple transformations ๐Ÿ”— Skipped
TODO: Complex stream chains with multiple intermediate variables not yet implemented - produces forEach with block
0.000
Multiple filters: sequential conditions ๐Ÿ”— Success 0.084
Properties ยป

Back to top

TestCase Bidirectional Loop Transformation Tests ๐Ÿ”—

Name Status Type Time(s)
Stream โ†’ for: chained stream ops (map) should NOT convert ๐Ÿ”— Success 0.102
Stream โ†’ while: comments in lambda body are preserved ๐Ÿ”— Success 0.753
Stream โ†’ for: forEach to enhanced for-loop ๐Ÿ”— Success 0.106
for โ†’ while: Enhanced for to iterator while-loop ๐Ÿ”— Success 0.496
Stream โ†’ for: comments in lambda body are preserved ๐Ÿ”— Success 0.107
while โ†’ for: Iterator while-loop to enhanced for ๐Ÿ”— Success 0.144
Stream โ†’ for: chained stream ops (filter) should NOT convert ๐Ÿ”— Success 0.182
for โ†’ Stream: Basic forEach transformation ๐Ÿ”— Success 0.121
Iterator โ†’ Stream: while-iterator to forEach ๐Ÿ”— Success 0.105
for โ†’ while: comments in body are preserved ๐Ÿ”— Success 0.483
while โ†’ for: iterator.remove() should NOT convert ๐Ÿ”— Success 0.104
for โ†’ Stream: basic transformation succeeds ๐Ÿ”— Success 0.087
while โ†’ for: comments in body are preserved ๐Ÿ”— Success 0.149
Properties ยป

Back to top

TestCase CollectionModificationDetector Tests ๐Ÿ”—

Name Status Type Time(s)
Should NOT detect modification on different collection ๐Ÿ”— Success 0.001
Should NOT detect getter with arguments ๐Ÿ”— Success 0.001
Should NOT detect non-matching getter name ๐Ÿ”— Success 0.001
Should detect list.addAll() modification ๐Ÿ”— Success 0.001
Should detect map.computeIfPresent() modification ๐Ÿ”— Success 0.001
Should detect list.clear() modification ๐Ÿ”— Success 0.001
Should detect list.remove() modification ๐Ÿ”— Success 0.001
Should detect list.replaceAll() modification ๐Ÿ”— Success 0.000
Should detect fetchMap().put() modification ๐Ÿ”— Success 0.000
Should detect retrieveData().clear() modification ๐Ÿ”— Success 0.000
Should detect list.add() modification ๐Ÿ”— Success 0.000
Should detect getList().remove() modification ๐Ÿ”— Success 0.000
Should detect this.list.remove() modification ๐Ÿ”— Success 0.000
Should detect map.compute() modification ๐Ÿ”— Success 0.000
Should detect map.replace() modification ๐Ÿ”— Success 0.000
Should detect map.putIfAbsent() modification ๐Ÿ”— Success 0.001
Should detect getItems().add() modification ๐Ÿ”— Success 0.001
Should detect map.merge() modification ๐Ÿ”— Success 0.001
Should detect map.computeIfAbsent() modification ๐Ÿ”— Success 0.000
Should detect map.put() modification ๐Ÿ”— Success 0.000
Should detect list.removeIf() modification ๐Ÿ”— Success 0.001
Should NOT detect getList().get() - non-modifying method ๐Ÿ”— Success 0.001
Should detect list.sort() modification ๐Ÿ”— Success 0.001
Should NOT detect non-modifying methods ๐Ÿ”— Success 0.001
Properties ยป

Back to top

TestCase Comment Preservation Integration Tests ๐Ÿ”—

Name Status Type Time(s)
FilterOp with comments triggers block lambda rendering ๐Ÿ”— Success 0.089
Empty comments are not stored ๐Ÿ”— Success 0.023
Extract trailing comments on same line ๐Ÿ”— Success 0.050
End-to-end: trailing inline comments are attached to operations ๐Ÿ”— Success 0.064
MapOp with comments triggers block lambda rendering ๐Ÿ”— Success 0.024
Operations without comments use compact lambda ๐Ÿ”— Success 0.022
Extract comments from loop with leading comment ๐Ÿ”— Success 0.060
End-to-end: comments before if-continue are attached to FilterOp ๐Ÿ”— Success 0.064
End-to-end: filter with trailing comment preserved ๐Ÿ”— Success 0.058
Extract comments from different positions in loop ๐Ÿ”— Success 0.071
Multiple operations can have independent comments ๐Ÿ”— Success 0.036
Properties ยป

Back to top

TestCase ConcurrentCollectionDetector Tests ๐Ÿ”—

Name Status Type Time(s)
Should detect CopyOnWriteArraySet as concurrent ๐Ÿ”— Success 0.434
Should detect by qualified name - CopyOnWriteArrayList ๐Ÿ”— Success 0.008
Should NOT detect by qualified name - ArrayList ๐Ÿ”— Success 0.000
Should detect CopyOnWriteArrayList as concurrent ๐Ÿ”— Success 0.018
Should detect ConcurrentHashMap as concurrent ๐Ÿ”— Success 0.023
Should detect by qualified name - ConcurrentHashMap ๐Ÿ”— Success 0.000
Should NOT detect HashMap as concurrent ๐Ÿ”— Success 0.014
Should handle null type binding ๐Ÿ”— Success 0.003
Should detect ConcurrentSkipListMap as concurrent ๐Ÿ”— Success 0.012
Should detect ConcurrentLinkedQueue as concurrent ๐Ÿ”— Success 0.010
Should NOT detect ArrayList as concurrent ๐Ÿ”— Success 0.016
Should detect LinkedBlockingQueue as concurrent ๐Ÿ”— Success 0.014
Should NOT detect LinkedList as concurrent ๐Ÿ”— Success 0.011
Should handle null qualified name ๐Ÿ”— Success 0.000
Properties ยป

Back to top

TestCase EnhancedForHandler ULR Integration Tests ๐Ÿ”—

Name Status Type Time(s)
Loop with return should NOT be converted by V2 ๐Ÿ”— Success 0.089
Loop with continue should be converted to filter by V2 ๐Ÿ”— Success 0.091
Loop with break should NOT be converted by V2 ๐Ÿ”— Success 0.112
Simple forEach conversion with V2 ๐Ÿ”— Success 0.112
Array iteration with V2 uses Arrays.stream() ๐Ÿ”— Success 0.114
Properties ยป

Back to top

TestCase Functional Loop - Nested Loops and Edge Cases ๐Ÿ”—

Name Status Type Time(s)
Properties ยป

Back to top

TestCase Functional Loop - Nested Loops and Edge Cases Complex Condition Tests ๐Ÿ”—

Name Status Type Time(s)
Filter with AND condition ๐Ÿ”— Success 0.142
Filter with OR condition ๐Ÿ”— Success 0.184
Filter with instanceof check ๐Ÿ”— Success 0.084
Filter with negated complex condition using continue ๐Ÿ”— Success 0.109
Properties ยป

Back to top

TestCase Functional Loop - Nested Loops and Edge Cases Complex Patterns That Should NOT Convert ๐Ÿ”—

Name Status Type Time(s)
Loop with multiple different returns - should NOT convert ๐Ÿ”— Success 0.054
Loop with switch statement - should NOT convert ๐Ÿ”— Success 0.110
Loop with try-catch - should NOT convert ๐Ÿ”— Success 0.111
Loop modifying collection during iteration - should NOT convert ๐Ÿ”— Success 0.023
Loop with synchronized block - should NOT convert ๐Ÿ”— Success 0.053
Properties ยป

Back to top

TestCase Functional Loop - Nested Loops and Edge Cases Edge Case Tests ๐Ÿ”—

Name Status Type Time(s)
Loop with only comment - should NOT convert ๐Ÿ”— Success 0.066
Loop over array - should convert to Arrays.stream() ๐Ÿ”— Success 0.066
Loop variable shadows instance field ๐Ÿ”— Success 0.082
Loop body uses this keyword ๐Ÿ”— Success 0.079
Loop with generic type parameters ๐Ÿ”— Success 0.148
Empty loop body - should NOT convert ๐Ÿ”— Success 0.054
Properties ยป

Back to top

TestCase Functional Loop - Nested Loops and Edge Cases Lambda Capture and Scope Tests ๐Ÿ”—

Name Status Type Time(s)
Loop uses effectively final variable ๐Ÿ”— Success 0.069
Loop body uses instance field ๐Ÿ”— Success 0.073
Loop body uses final local variable ๐Ÿ”— Success 0.066
Loop body uses method parameter ๐Ÿ”— Success 0.086
Properties ยป

Back to top

TestCase Functional Loop - Nested Loops and Edge Cases Nested Loop Tests ๐Ÿ”—

Name Status Type Time(s)
Nested for-each loops should convert inner loop only ๐Ÿ”— Success 0.059
Loop over filtered stream result - should convert ๐Ÿ”— Success 0.104
Nested loops with outer variable capture - should NOT convert ๐Ÿ”— Success 0.066
Enhanced-for with nested traditional for loop - should NOT convert ๐Ÿ”— Success 0.062
Inner loop in nested context can be converted ๐Ÿ”— Success 0.088
Enhanced-for with nested do-while loop - should NOT convert ๐Ÿ”— Success 0.059
Enhanced-for with nested while loop - should NOT convert ๐Ÿ”— Success 0.062
Properties ยป

Back to top

TestCase Functional Loop Null Safety Tests ๐Ÿ”—

Name Status Type Time(s)
Properties ยป

Back to top

TestCase Functional Loop Null Safety Tests Edge Cases and Corner Cases ๐Ÿ”—

Name Status Type Time(s)
forEach with Optional.ofNullable ๐Ÿ”— Success 0.074
allMatch with null-safe equals comparison ๐Ÿ”— Success 0.075
anyMatch with negated null check (find non-null) ๐Ÿ”— Success 0.070
Chained method calls with potential null intermediate ๐Ÿ”— Success 0.129
Properties ยป

Back to top

TestCase Functional Loop Null Safety Tests Match Pattern Null Safety Tests ๐Ÿ”—

Name Status Type Time(s)
noneMatch with method call - NPE risk documented ๐Ÿ”— Success 0.085
anyMatch checking for null elements ๐Ÿ”— Success 0.070
Properties ยป

Back to top

TestCase Functional Loop Null Safety Tests Method Invocation on Loop Variable Tests ๐Ÿ”—

Name Status Type Time(s)
Method call on loop variable - same NPE behavior ๐Ÿ”— Success 0.117
Explicit null check with continue converts to filter ๐Ÿ”— Success 0.118
Properties ยป

Back to top

TestCase Functional Loop Null Safety Tests Negative Tests - Should NOT Convert ๐Ÿ”—

Name Status Type Time(s)
Assignment to external variable converts to filter/forEachOrdered ๐Ÿ”— Success 0.098
Conditional return null in loop - should NOT convert ๐Ÿ”— Success 0.154
Properties ยป

Back to top

TestCase Functional Loop Null Safety Tests Reduce Operation Null Safety Tests ๐Ÿ”—

Name Status Type Time(s)
Integer sum with unboxing - same NPE behavior ๐Ÿ”— Success 0.095
Math.max reducer pattern ๐Ÿ”— Success 0.079
Properties ยป

Back to top

TestCase Functional Loop Null Safety Tests String Concatenation Reducer Tests ๐Ÿ”—

Name Status Type Time(s)
String concat without @NotNull uses null-safe lambda ๐Ÿ”— Success 0.089
String concat with @NotNull accumulator uses String::concat ๐Ÿ”— Success 0.085
Properties ยป

Back to top

TestCase Issue #670 Security Measures Integration Tests ๐Ÿ”—

Name Status Type Time(s)
list.removeIf() should block conversion ๐Ÿ”— Success 0.110
getItems().clear() should block conversion when iterating items ๐Ÿ”— Success 0.107
this.items.add() should block conversion when iterating same field ๐Ÿ”— Success 0.145
list.replaceAll() on iterated collection should block conversion ๐Ÿ”— Success 0.085
map.putIfAbsent() on different collection allows conversion ๐Ÿ”— Success 0.104
CopyOnWriteArrayList - should NOT convert (concurrent collection) ๐Ÿ”— Success 0.120
ConcurrentHashMap - should NOT convert (concurrent collection) ๐Ÿ”— Success 0.110
map.computeIfAbsent() on different collection allows conversion ๐Ÿ”— Success 0.101
map.merge() on different collection allows conversion ๐Ÿ”— Success 0.115
list.sort() on iterated collection should block conversion ๐Ÿ”— Success 0.129
getList().remove() should block conversion ๐Ÿ”— Success 0.078
map.compute() on different collection allows conversion ๐Ÿ”— Success 0.132
Properties ยป

Back to top

TestCase Issue #670: Strict Loop Refactoring Rules ๐Ÿ”—

Name Status Type Time(s)
Indexed array loop with neighbor access (i+1) - should NOT convert ๐Ÿ”— Success 0.098
Indexed loop with previous element access (i-1) - should NOT convert ๐Ÿ”— Success 0.044
Loop with list.remove() - should NOT convert ๐Ÿ”— Success 0.043
Iterator loop on CopyOnWriteArrayList with iterator.remove() - should NOT convert ๐Ÿ”— Success 0.057
Enhanced for-loop on ConcurrentHashMap values - should NOT convert ๐Ÿ”— Success 0.064
Loop with map.put() on iterated map - should NOT convert (BUG) ๐Ÿ”— Skipped
BUG: Collection modification detection not blocking conversion - Issue #670
0.000
Loop with index arithmetic (i*2) - should NOT convert ๐Ÿ”— Success 0.041
Loop modifying different collection - CAN convert ๐Ÿ”— Skipped
Different but acceptable behavior - converts to collect() instead of forEach()
0.000
Loop with index in conditional logic (i%2==0) - should NOT convert ๐Ÿ”— Success 0.071
Simple indexed array loop (only array[i]) - CAN convert to IntStream ๐Ÿ”— Success 0.061
Simple iterator loop on CopyOnWriteArrayList - CAN convert ๐Ÿ”— Skipped
Different but acceptable behavior - converts to stream instead of enhanced-for
0.000
Loop with list.add() - should NOT convert ๐Ÿ”— Success 0.042
Loop with getter method receiver (getList().add) - should NOT convert (CRASHES) ๐Ÿ”— Skipped
BUG: IllegalArgumentException - Invalid identifier : >getList()< - needs fix in EnhancedForHandler
0.000
Loop with list.clear() - should NOT convert ๐Ÿ”— Success 0.054
Loop with field access receiver (this.list.remove) - should NOT convert (BUG) ๐Ÿ”— Skipped
BUG: Field access modification detection not blocking conversion - Issue #670
0.000
Loop with index arithmetic AND collection modification - should NOT convert ๐Ÿ”— Success 0.027
Properties ยป

Back to top

TestCase Iterator Loop to Stream Conversion Tests ๐Ÿ”—

Name Status Type Time(s)
Iterator filter+map+collect: stream().filter().map().collect() ๐Ÿ”— Skipped
Iterator filter+map+collect pipeline not yet implemented; re-enable when iterator patterns support collect/map/filter/reduce
0.000
Multiple next() calls prevent conversion - unsafe pattern ๐Ÿ”— Success 0.087
Iterator collect to Set: stream().collect(Collectors.toSet()) ๐Ÿ”— Skipped
Iterator collect-to-Set pipeline not yet implemented; re-enable when iterator patterns support collect/map/filter/reduce
0.000
for-loop-iterator forEach: list.stream().forEach(item -> println(item)) ๐Ÿ”— Success 0.125
Iterator map+collect: stream().map(transform).collect(toList()) ๐Ÿ”— Skipped
Iterator map+collect pipeline not yet implemented; re-enable when iterator patterns support collect/map/filter/reduce
0.000
Iterator map with method reference: stream().map(String::toUpperCase) ๐Ÿ”— Skipped
Iterator map pipeline not yet implemented; re-enable when iterator patterns support collect/map/filter/reduce
0.000
Break statement prevents conversion - not yet supported ๐Ÿ”— Success 0.087
Iterator filter+collect: stream().filter(predicate).collect(toList()) ๐Ÿ”— Skipped
Iterator filter+collect pipeline not yet implemented; re-enable when iterator patterns support collect/map/filter/reduce
0.000
Iterator sum reduction: stream().mapToInt(i -> i).sum() ๐Ÿ”— Skipped
Iterator reduce pipeline not yet implemented; re-enable when iterator patterns support collect/map/filter/reduce
0.000
Iterator.remove() prevents conversion - unsafe pattern ๐Ÿ”— Success 0.151
Labeled continue prevents conversion - unsafe pattern ๐Ÿ”— Success 0.092
while-iterator forEach: list.stream().forEach(item -> println(item)) ๐Ÿ”— Success 0.125
Iterator collect to List: stream().collect(Collectors.toList()) ๐Ÿ”— Skipped
Iterator collect-to-List pipeline not yet implemented; re-enable when iterator patterns support collect/map/filter/reduce
0.000
External state modification prevents conversion - side effect ๐Ÿ”— Skipped
External state modification detection needs fixing - currently converts when it shouldn't
0.000
forEach with block lambda for multiple statements ๐Ÿ”— Success 0.128
Properties ยป

Back to top

TestCase LambdaGenerator Tests ๐Ÿ”—

Name Status Type Time(s)
Properties ยป

Back to top

TestCase LambdaGenerator Tests Constructor ๐Ÿ”—

Name Status Type Time(s)
valid AST creates instance ๐Ÿ”— Success 0.001
null AST throws exception ๐Ÿ”— Success 0.001
Properties ยป

Back to top

TestCase LambdaGenerator Tests createAccumulatorExpression() ๐Ÿ”—

Name Status Type Time(s)
Creates binary lambda for STRING_CONCAT when not null-safe ๐Ÿ”— Success 0.001
Creates Integer::sum for SUM type with int ๐Ÿ”— Success 0.001
Creates Double::sum for SUM type with double ๐Ÿ”— Success 0.000
Creates counting lambda for INCREMENT type ๐Ÿ”— Success 0.001
Creates String::concat for STRING_CONCAT when null-safe ๐Ÿ”— Success 0.003
Creates binary lambda for PRODUCT type ๐Ÿ”— Success 0.000
Properties ยป

Back to top

TestCase LambdaGenerator Tests generateUniqueVariableName() ๐Ÿ”—

Name Status Type Time(s)
Returns base name if not used ๐Ÿ”— Success 0.001
Appends number if base name is used ๐Ÿ”— Success 0.000
Increments number until unique ๐Ÿ”— Success 0.000
Properties ยป

Back to top

TestCase Loop Collect Pattern Refactoring Tests ๐Ÿ”—

Name Status Type Time(s)
Null filter: filter(item -> (item != null)) ๐Ÿ”— Success 0.262
Map+collect: stream().map(transform).collect(Collectors.toList()) ๐Ÿ”— Success 0.150
Side effects prevent collect conversion ๐Ÿ”— Skipped
V2 incorrectly wraps counter++ as side-effect map instead of detecting external state modification
0.000
Identity collect to List: stream().collect(Collectors.toList()) ๐Ÿ”— Success 0.140
Array source collect: Arrays.stream(array).toList() ๐Ÿ”— Skipped
V1 doesn't handle Arrays import with java.util.* - needs specific import setup
0.000
Filter+collect: stream().filter(predicate).toList() ๐Ÿ”— Success 0.110
Identity collect to Set: stream().collect(Collectors.toSet()) ๐Ÿ”— Success 0.178
Complex filter+map: multiple conditions and transformations ๐Ÿ”— Success 0.118
Filter+map+collect chain: optimal ordering for performance ๐Ÿ”— Success 0.128
Map with lambda (method reference candidate): stream().map(item -> item.toUpperCase()) ๐Ÿ”— Success 0.145
Intermediate read transformed with forEach ๐Ÿ”— Success 0.100
Multiple collect targets converted to forEach ๐Ÿ”— Success 0.076
Array map+collect: Arrays.stream(arr).map(f).toList() ๐Ÿ”— Skipped
V1 doesn't handle Arrays import with java.util.* - needs specific import setup
0.000
Map with complex expression: stream().map(x -> x * 2) ๐Ÿ”— Success 0.050
Break statement prevents collect conversion ๐Ÿ”— Success 0.084
Properties ยป

Back to top

TestCase Loop Refactoring Edge Cases and Boundary Conditions ๐Ÿ”—

Name Status Type Time(s)
Nested generics: List<List<T>> type inference ๐Ÿ”— Success 0.126
Single element: consistent transformation ๐Ÿ”— Success 0.173
Unused element: lambda with unused parameter ๐Ÿ”— Skipped
Pattern not converting in V1 - needs investigation
0.000
Empty collection: stream handles empty input correctly ๐Ÿ”— Success 0.139
Performance: use direct forEach when possible ๐Ÿ”— Success 0.190
Method chaining: element.method1().method2() ๐Ÿ”— Success 0.131
Null-safe operation: filter before map ๐Ÿ”— Success 0.149
No-op loop: empty body still transforms ๐Ÿ”— Success 0.116
Variable shadowing: lambda preserves scope ๐Ÿ”— Success 0.192
Chained map: map(x -> x.m1().m2()) ๐Ÿ”— Success 0.178
Name conflict: avoid variable name collisions ๐Ÿ”— Success 0.144
Primitive array: use IntStream for int[] to avoid boxing ๐Ÿ”— Success 0.101
Null check filter: filter(item -> item != null) ๐Ÿ”— Success 0.107
Wildcard generics: List<? extends T> handling ๐Ÿ”— Success 0.181
Properties ยป

Back to top

TestCase Loop Target Format Selection Tests ๐Ÿ”—

Name Status Type Time(s)
LoopTargetFormat.getId() returns correct IDs ๐Ÿ”— Success 0.078
Target format STREAM: for โ†’ stream (default behavior) ๐Ÿ”— Success 0.099
LoopTargetFormat.fromId() parses correctly ๐Ÿ”— Success 0.026
Target format FOR_LOOP: no conversion yet (not implemented) ๐Ÿ”— Success 0.074
Target format WHILE_LOOP: no conversion yet (not implemented) ๐Ÿ”— Success 0.071
Properties ยป

Back to top

TestCase LoopBodyParser.ParseResult Tests ๐Ÿ”—

Name Status Type Time(s)
Properties ยป

Back to top

TestCase LoopBodyParser.ParseResult Tests Constructor with skip index ๐Ÿ”—

Name Status Type Time(s)
Creates result with skip index ๐Ÿ”— Success 0.001
Skip index 0 is valid ๐Ÿ”— Success 0.004
Properties ยป

Back to top

TestCase LoopBodyParser.ParseResult Tests Constructor with variable name ๐Ÿ”—

Name Status Type Time(s)
Creates result with current variable name ๐Ÿ”— Success 0.001
Allows null variable name ๐Ÿ”— Success 0.009
Properties ยป

Back to top

TestCase LoopBodyParser.ParseResult Tests State checks ๐Ÿ”—

Name Status Type Time(s)
Abort result has shouldAbort() == true ๐Ÿ”— Success 0.000
Default skip index is -1 ๐Ÿ”— Success 0.000
Non-abort result has shouldAbort() == false ๐Ÿ”— Success 0.000
Properties ยป

Back to top

TestCase LoopBodyParser.ParseResult Tests abort() factory method ๐Ÿ”—

Name Status Type Time(s)
Multiple abort calls return equivalent results ๐Ÿ”— Success 0.021
Creates abort result ๐Ÿ”— Success 0.001
Properties ยป

Back to top

TestCase ProspectiveOperation Tests ๐Ÿ”—

Name Status Type Time(s)
Properties ยป

Back to top

TestCase ProspectiveOperation Tests Accumulator and Null-Safe Properties ๐Ÿ”—

Name Status Type Time(s)
setAccumulatorType and getAccumulatorType work correctly ๐Ÿ”— Success 0.000
setNullSafe and isNullSafe work correctly ๐Ÿ”— Success 0.003
Properties ยป

Back to top

TestCase ProspectiveOperation Tests Constructor with Expression ๐Ÿ”—

Name Status Type Time(s)
Creates MAP operation with produced variable ๐Ÿ”— Success 0.001
Creates FILTER operation from expression ๐Ÿ”— Success 0.001
Properties ยป

Back to top

TestCase ProspectiveOperation Tests OperationType Enum ๐Ÿ”—

Name Status Type Time(s)
All operation types are defined ๐Ÿ”— Success 0.001
Properties ยป

Back to top

TestCase ProspectiveOperation Tests OperationType.getMethodName() ๐Ÿ”—

Name Status Type Time(s)
Returns 'anyMatch' for ANYMATCH operation ๐Ÿ”— Success 0.000
Returns 'reduce' for REDUCE operation ๐Ÿ”— Success 0.001
Returns 'filter' for FILTER operation ๐Ÿ”— Success 0.006
Returns 'allMatch' for ALLMATCH operation ๐Ÿ”— Success 0.000
Returns 'noneMatch' for NONEMATCH operation ๐Ÿ”— Success 0.000
Returns 'forEachOrdered' for FOREACH operation ๐Ÿ”— Success 0.000
Returns 'map' for MAP operation ๐Ÿ”— Success 0.000
Properties ยป

Back to top

TestCase ProspectiveOperation Tests ReducerType Enum ๐Ÿ”—

Name Status Type Time(s)
All reducer types are defined ๐Ÿ”— Success 0.002
Properties ยป

Back to top

TestCase SideEffectChecker Tests ๐Ÿ”—

Name Status Type Time(s)
Properties ยป

Back to top

TestCase SideEffectChecker Tests isSafeSideEffect() ๐Ÿ”—

Name Status Type Time(s)
Assignment to current variable is unsafe ๐Ÿ”— Success 0.000
null statement is unsafe ๐Ÿ”— Success 0.001
Method invocation is safe ๐Ÿ”— Success 0.000
Assignment to different variable is unsafe ๐Ÿ”— Success 0.001
Properties ยป

Back to top

TestCase StatementParsingContext Tests ๐Ÿ”—

Name Status Type Time(s)
Properties ยป

Back to top

TestCase StatementParsingContext Tests Constructor ๐Ÿ”—

Name Status Type Time(s)
Creates context with all parameters ๐Ÿ”— Success 0.001
Properties ยป

Back to top

TestCase StatementParsingContext Tests Getters and Setters ๐Ÿ”—

Name Status Type Time(s)
setCurrentVariableName updates the variable name ๐Ÿ”— Success 0.001
Match patterns are correctly returned ๐Ÿ”— Success 0.000
Properties ยป

Back to top

TestCase StatementParsingContext Tests forSingleStatement factory ๐Ÿ”—

Name Status Type Time(s)
Creates context for single statement ๐Ÿ”— Success 0.001
Creates context with match patterns ๐Ÿ”— Success 0.000
Properties ยป

Back to top

TestCase StreamConstants Tests ๐Ÿ”—

Name Status Type Time(s)
Properties ยป

Back to top

TestCase StreamConstants Tests Converter-Specific Constants ๐Ÿ”—

Name Status Type Time(s)
UNUSED_PARAMETER_NAME is correct ๐Ÿ”— Success 0.000
MATH_CLASS_NAME is correct ๐Ÿ”— Success 0.001
Properties ยป

Back to top

TestCase StreamConstants Tests Math Constants ๐Ÿ”—

Name Status Type Time(s)
JAVA_LANG_MATH delegates to LibStandardNames ๐Ÿ”— Success 0.001
MAX_METHOD_NAME delegates to LibStandardNames ๐Ÿ”— Success 0.004
MIN_METHOD_NAME delegates to LibStandardNames ๐Ÿ”— Success 0.000
Properties ยป

Back to top

TestCase StreamConstants Tests Method Reference Constants ๐Ÿ”—

Name Status Type Time(s)
INTEGER_MAX is correct ๐Ÿ”— Success 0.000
INTEGER_MIN is correct ๐Ÿ”— Success 0.000
DOUBLE_SUM is correct ๐Ÿ”— Success 0.004
STRING_CONCAT is correct ๐Ÿ”— Success 0.000
INTEGER_SUM is correct ๐Ÿ”— Success 0.001
LONG_SUM is correct ๐Ÿ”— Success 0.000
Properties ยป

Back to top

TestCase StreamConstants Tests Stream Method Constants ๐Ÿ”—

Name Status Type Time(s)
REDUCE_METHOD delegates to LibStandardNames ๐Ÿ”— Success 0.000
ANY_MATCH_METHOD delegates to LibStandardNames ๐Ÿ”— Success 0.000
FILTER_METHOD delegates to LibStandardNames ๐Ÿ”— Success 0.000
ALL_MATCH_METHOD delegates to LibStandardNames ๐Ÿ”— Success 0.000
FOR_EACH_ORDERED_METHOD delegates to LibStandardNames ๐Ÿ”— Success 0.001
NONE_MATCH_METHOD delegates to LibStandardNames ๐Ÿ”— Success 0.000
STREAM_METHOD delegates to LibStandardNames ๐Ÿ”— Success 0.000
FOR_EACH_METHOD delegates to LibStandardNames ๐Ÿ”— Success 0.000
MAP_METHOD delegates to LibStandardNames ๐Ÿ”— Success 0.000
Properties ยป

Back to top

TestCase StreamConstants Tests Type Constants ๐Ÿ”—

Name Status Type Time(s)
JAVA_LANG_STRING delegates to LibStandardNames ๐Ÿ”— Success 0.000
Properties ยป

Back to top

TestCase org.sandbox.jdt.ui.tests.quickfix.ASTStreamRendererTest ๐Ÿ”—

Name Status Type Time(s)
testRenderCollect_ToList ๐Ÿ”— Success 0.002
testRenderSource_ExplicitRange ๐Ÿ”— Success 0.005
testRenderMap ๐Ÿ”— Success 0.001
testRenderReduce_WithIdentity ๐Ÿ”— Success 0.003
testRenderDirectForEach_Collection ๐Ÿ”— Success 0.000
testRenderSource_Array ๐Ÿ”— Success 0.003
testRenderDirectForEach_Array_FallbackToStream ๐Ÿ”— Success 0.001
testRenderFind_First ๐Ÿ”— Success 0.000
testRenderSource_Collection ๐Ÿ”— Success 0.002
testRenderMatch_NoneMatch ๐Ÿ”— Success 0.001
testRenderDirectForEach_Iterable ๐Ÿ”— Success 0.000
testRenderMatch_AllMatch ๐Ÿ”— Success 0.000
testRenderForEach_Ordered ๐Ÿ”— Success 0.000
testRenderForEach_SingleStatement ๐Ÿ”— Success 0.000
testRenderSorted_NoComparator ๐Ÿ”— Success 0.001
testRenderFlatMap ๐Ÿ”— Success 0.000
testRenderSource_IntRange ๐Ÿ”— Success 0.000
testRenderPeek ๐Ÿ”— Success 0.000
testRenderSkip ๐Ÿ”— Success 0.001
testRenderFind_Any ๐Ÿ”— Success 0.000
testRenderForEach_MultipleStatements ๐Ÿ”— Success 0.001
testRenderSource_ExplicitRangeWithVariables ๐Ÿ”— Success 0.003
testComplexPipeline ๐Ÿ”— Success 0.001
testRenderSorted_WithComparator ๐Ÿ”— Success 0.004
testRenderSource_Iterable ๐Ÿ”— Success 0.000
testGetAST ๐Ÿ”— Success 0.000
testRenderFilter ๐Ÿ”— Success 0.001
testRenderDistinct ๐Ÿ”— Success 0.000
testRenderCount ๐Ÿ”— Success 0.004
testRenderLimit ๐Ÿ”— Success 0.000
testRenderReduce_WithoutIdentity ๐Ÿ”— Success 0.000
testRenderCollect_ToSet ๐Ÿ”— Success 0.000
testRenderMatch_AnyMatch ๐Ÿ”— Success 0.004
Properties ยป

Back to top

TestCase org.sandbox.jdt.ui.tests.quickfix.FeatureParityTest ๐Ÿ”—

Name Status Type Time(s)
parity_FilterPattern ๐Ÿ”— Success 0.149
parity_SimpleForEachConversion ๐Ÿ”— Success 0.163
parity_BreakShouldNotConvert ๐Ÿ”— Success 0.169
Properties ยป

Back to top

TestCase org.sandbox.jdt.ui.tests.quickfix.FunctionalLoopCollectTest ๐Ÿ”—

Name Status Type Time(s)
test_SimpleCollectToList ๐Ÿ”— Success 0.219
test_MappedCollectToList ๐Ÿ”— Success 0.239
Properties ยป

Back to top

TestCase org.sandbox.jdt.ui.tests.quickfix.FunctionalLoopComplexPatternTest ๐Ÿ”—

Name Status Type Time(s)
test_MergingOperations ๐Ÿ”— Success 0.133
test_NoNeededVariablesMerging ๐Ÿ”— Success 0.142
test_SomeChainingWithNoNeededVar ๐Ÿ”— Success 0.120
Properties ยป

Back to top

TestCase org.sandbox.jdt.ui.tests.quickfix.FunctionalLoopFilterMapTest ๐Ÿ”—

Name Status Type Time(s)
test_ChainingMap ๐Ÿ”— Success 0.241
test_NestedFilterCombination ๐Ÿ”— Success 0.163
test_MultipleContinueFilters ๐Ÿ”— Success 0.154
test_ChainingFilterMapForEachConvert ๐Ÿ”— Success 0.223
test_NonFilteringIfChaining ๐Ÿ”— Success 0.243
test_ContinuingIfFilterSingleStatement ๐Ÿ”— Success 0.183
test_ContinueWithNestedConditions ๐Ÿ”— Success 0.140
test_ContinueWithMapAndForEach ๐Ÿ”— Success 0.132
test_FilterWithComplexCondition ๐Ÿ”— Success 0.204
test_ChainedFilterAndMapOperations ๐Ÿ”— Success 0.140
test_SmoothLongerChaining ๐Ÿ”— Success 0.168
Properties ยป

Back to top

TestCase org.sandbox.jdt.ui.tests.quickfix.FunctionalLoopMatchPatternTest ๐Ÿ”—

Name Status Type Time(s)
test_ChainedNoneMatch ๐Ÿ”— Skipped
TODO: Chained map operations with noneMatch pattern not yet implemented - produces forEach with block instead of stream chain
0.000
test_ChainedAnyMatch ๐Ÿ”— Skipped
TODO: Chained map operations with anyMatch pattern not yet implemented - produces forEach with block instead of stream chain
0.000
test_SimpleAllMatch ๐Ÿ”— Success 0.151
test_ChainedAllMatch ๐Ÿ”— Success 0.192
test_AllMatchWithNullCheck ๐Ÿ”— Success 0.189
Properties ยป

Back to top

TestCase org.sandbox.jdt.ui.tests.quickfix.FunctionalLoopNegativeTest ๐Ÿ”—

Name Status Type Time(s)
Loop clearing iterated collection (list.clear) - should NOT convert ๐Ÿ”— Success 0.098
test_Break_Statement_ShouldNotConvert ๐Ÿ”— Success 0.118
Loop with both break and continue - should NOT convert ๐Ÿ”— Success 0.075
Loop adding to iterated collection (list.add) - should NOT convert ๐Ÿ”— Success 0.130
Loop returning different values in different branches - should NOT convert ๐Ÿ”— Success 0.095
test_Throw_Statement_ShouldNotConvert ๐Ÿ”— Success 0.102
Loop modifying external variable (not accumulator pattern) - should NOT convert ๐Ÿ”— Success 0.073
test_External_variable_modification_with_side_effects_converts ๐Ÿ”— Success 0.158
test_Labeled_Continue_ShouldNotConvert ๐Ÿ”— Success 0.125
test_EarlyReturn_WithSideEffects_ShouldNotConvert ๐Ÿ”— Success 0.148
Loop modifying iterated collection (list.remove) - should NOT convert ๐Ÿ”— Success 0.133
Properties ยป

Back to top

TestCase org.sandbox.jdt.ui.tests.quickfix.FunctionalLoopReducerTest ๐Ÿ”—

Name Status Type Time(s)
test_SimpleReducer ๐Ÿ”— Success 0.196
test_MaxReducer ๐Ÿ”— Success 0.127
test_FilterMapReduceChain ๐Ÿ”— Success 0.213
test_LongIncrementReducer ๐Ÿ”— Success 0.328
test_SumReductionWithFilter ๐Ÿ”— Success 0.207
test_ComplexReductionWithMapping ๐Ÿ”— Success 0.251
test_IncrementReducer ๐Ÿ”— Success 0.192
test_MinReducer ๐Ÿ”— Success 0.148
Properties ยป

Back to top

TestCase org.sandbox.jdt.ui.tests.quickfix.FunctionalLoopSimpleConversionTest ๐Ÿ”—

Name Status Type Time(s)
test_BeautificationWorks2 ๐Ÿ”— Success 0.281
test_SimpleForEachConversion ๐Ÿ”— Success 0.200
test_BeautificationWorks ๐Ÿ”— Success 0.173
test_EmptyCollectionHandling ๐Ÿ”— Success 0.217
Properties ยป

Back to top

TestCase org.sandbox.jdt.ui.tests.quickfix.IteratorLoopConversionTest ๐Ÿ”—

Name Status Type Time(s)
testWithBreak_notYetSupported ๐Ÿ”— Success 0.041
testIteratorWithRemove_notConverted ๐Ÿ”— Success 0.053
testIteratorMultipleNext_notConverted ๐Ÿ”— Success 0.112
testMultipleStatements_forEach ๐Ÿ”— Success 0.056
testForLoopIterator_forEach ๐Ÿ”— Success 0.039
testSimpleWhileIterator_forEach ๐Ÿ”— Success 0.082
Properties ยป

Back to top

All Test Reports | Coverage Reports | GitHub Repository

Generated by Sandbox